Programando em Python

por Igor Magalhães, Pedro Dib

Prefácio


Tabela de Conteúdos

Parte 1: Programação


  1. Introdução
    1. Ciência da Computação
    2. Programação
    3. O que é um programa
    4. O que é uma linguagem
    5. Conversando com o computador
    6. Instalando o Python

  2. Primeiro programa
    1. Olá, mundo!
    2. Variáveis e tipos
    3. Operadores e input do usuário
    4. Erros comuns e como lidar
    5. Exercícios

  3. Ramificação de Programas
    1. Visão rápida de lógica
    2. Booleanos
    3. Operadores lógicos
    4. Execução Condicional
    5. Encadeamento e Aninhamento
    6. Erros comuns e como lidar
    7. Exercícios

  4. Comandos de repetição (loops)
    1. For
    2. While
    3. Quando usar For e quando usar While
    4. Erros comuns e como lidar
    5. Exercícios

  5. Tuplas, Listas e Mutabilidade
    1. String Slicing
    2. Tuplas
    3. Listas
    4. Matrizes
    5. Erros comuns e como lidar
    6. Exercícios

  6. Funções e Abstração
    1. O que é uma função
    2. Definindo uma função
    3. A função main()
    4. Variáveis globais
    5. Erros comuns e como lidar
    6. Exercícios

  7. Dicionários
    1. O que é
    2. Estrutura básica
    3. Looping nos Dicionários
    4. Erros comuns e como lidar
    5. Exercícios

  8. Recursão
    1. O que é
    2. Estrutura básica
    3. Recursão infinita
    4. Erros comuns e como lidar
    5. Exercícios

  9. Arquivos
    1. Persistência
    2. Abrindo arquivos
    3. Lendo arquivos de texto
    4. Procurando em um arquivo
    5. Alterar arquivos
    6. Erros comuns e como lidar
    7. Exercícios

  10. Erros e Exceções
    1. Lidando com exceções
    2. Tipos de erros
    3. Debugging
    4. Exercícios

  11. Recursos avançados
    1. List Comprehension
    2. Dict Comprehension
    3. Expressões ternárias
    4. Exercícios

  12. Orientação a Objetos
    1. Classes e Tipos Abstratos de Dados
    2. Herança
    3. Encapsulamento
    4. Tipos do Python e seus métodos
    5. Erros comuns e como lidar
    6. Exercícios

  13. Módulos e bibliotecas
    1. O que é um módulo
    2. O que é uma biblioteca
    3. Como importar
    4. Exercícios

Parte 2: Projetos

  1. Introdução

  2. Estrutura
    1. Resumo da seção
    </li> </ol> Soluções dos Exercícios
    Referências


0. Introdução


a. Ciência da Computação

A Ciência da Computação costuma ser muito associadas a computadores, mas não é o estudo de computadores. Ciência da Computação é, no geral, o estudo de problemas e das soluções - ou não existência de soluções - desses problemas. É conhecimento fundamental pra alguém que estuda Ciência da Computação saber comparar essas soluções, dividir em tarefas menores e até já saber algumas soluções que facilitam o caminho.

Um cientista da computação é alguém que, tendo um problema, desenvolve um raciocínio para achar uma resposta. Esse desenvolvimento vem numa sequência de passos, de instruções, que se seguidas irão resolver esse problema, e é essa sequência que nós chamamos de algoritmo. Mais formalmente, um algoritmo é uma sequência finita e bem definida de passos computacionais que recebe uma entrada (um input) e retorna uma saída (um output).

Um mesmo problema pode ser resolvido de maneiras diferentes, algumas maneiras melhores e outras piores, mas como avaliar se uma solução é boa ou ruim? Um critério possível é: chegar no mesmo resultado mais rapidamente e usando menos recursos indica uma solução melhor. Dois algoritmos podem estar certos, mas um pode ser melhor que o outro.

Algo que surge quando falamos de ciência da computação é a palavra computável. Um problema é computável se existe um algoritmo para resolvê-lo. Existem, inclusive, problemas que não podem ser resolvidos seguindo um algoritmo, problemas não computáveis.

Este material usará vários conceitos de ciência da computação, mas não necessariamente definirá cada um deles. O importante aqui é aprender o básico de como pensar em um algoritmo, como desenvolver uma lógica para resolver um problema.

b. Programação

Programação é basicamente uma forma de transcrever um algoritmo para uma linguagem de programação, fazendo que essa sequência possa ser executada por um computador. A programação é simplesmente o meio, uma ferramenta que nós usamos para traduzir nossa lógica para resolver o problema.

Ciência da computação, como já dito, não é a ciência de programar, mas programar vai ser algo muito importante no processo. É programando que nós aplicamos nossos algoritmos, e nós vamos inclusive falar de várias técnicas de programação nesse material, mas note que o algoritmo vem primeiro, só depois vem a programação. Sem um algoritmo para ser transcrito, um programa não existe.

c. O que é um programa

Um programa é uma sequência de instruções que um computador pode executar para completar uma tarefa específica. Atualmente, escrevemos nossos programa usando uma linguagem de programação, mas programas já foram escritos até mesmo usando cartões perfurados.

Used_Punchcard_%285151286161%29.jpg Cartão perfurado usado pra carregar software em um computador antigo. Fonte

Os computadores modernos funcionam por meio de transistores, que são como interruptores que deixam ou não passar corrente elétrica por eles; seu celular tem bilhões desses transistores. A linguagem que o computador entende "naturalmente" é binária: 1 ou 0, corrente passando ou corrente não passando.

Antigamente, para dar instruções aos computadores, os programadores (pessoa que programa um computador) deviam escrever o código todo em código de máquina, com as instruções diretamente da forma que o processador (parte do computador responsável por fazer cálculos) foi projetado para entender. Um programa muito simples em código de máquina se parece com isto:


B4 03 CD 10 B0 01 B3 0A B9 0B 00 BD 13 01 B4 13
CD 10 C3 4F 69 20 6D 75 6E 64 6F 21 0D 0A

Não é difícil convencer alguém que essa não é uma forma muito prática (e principalmente muito intuitiva) de se programar. Para resolver esse problema que foram criadas as linguagens de programação.

d. O que é uma linguagem

Linguagens naturais são aquelas que surgiram naturalmente, como Inglês, Português, Francês. Não conseguimos pensar em um momento específico em que esse tipo de linguagem foi inventada, ela foi evoluindo e sendo moldada com as pessoas que a falam.

Linguagens formais são feitas por pessoas para aplicações específicas, como a linguagem matemática para representar relações entre números e outros objetos matemáticos. Esse tipo de linguagem costuma ter uma estrutura estrita, com regras de sintaxe que definem se uma declaração é válida ou não.

Linguagens de programação são linguagens formais feitas especificamente para dar instruções a um computador. Apesar disso, também estão sempre em mudança e de tempos em tempos surgem novas linguagens de programação de acordo com as necessidades que surgem.

e. Conversando com o computador

f. Instalando o Python